Log Files ব্যবহার করে Error Tracking

Web Development - কোডইগনাইটার (Codeigniter) - CodeIgniter এর Error Handling এবং Debugging |

Error Tracking এবং Logging একটি গুরুত্বপূর্ণ অংশ যেকোনো অ্যাপ্লিকেশনের জন্য, কারণ এটি সমস্যা চিহ্নিত করতে এবং ডিবাগিং প্রক্রিয়াকে সহজ করে তোলে। CodeIgniter এ এর জন্য একটি শক্তিশালী Logging সিস্টেম রয়েছে, যা ডেভেলপারদের অ্যাপ্লিকেশনের ত্রুটিগুলো লগ ফাইলের মাধ্যমে ট্র্যাক করতে সহায়তা করে। এতে ডেটা নিরাপত্তা বজায় রেখে বিভিন্ন ধরনের লগ তৈরি করা যায়, যেমন: Error logs, Debug logs, এবং Informational logs

CodeIgniter ফ্রেমওয়ার্কে লগ ফাইল ব্যবহার করে Error Tracking করতে নিচের পদ্ধতিগুলি অনুসরণ করা যায়।


Log Files কনফিগারেশন

CodeIgniter এ লোগিং সিস্টেমের জন্য প্রধান কনফিগারেশন ফাইল হলো application/config/config.php

১. কনফিগারেশন ফাইলের লোগিং সেটআপ

application/config/config.php ফাইলটি খুলুন এবং নিচের কনফিগারেশন সেট করুন:

$config['log_threshold'] = 4; // লোগিং স্তর
$config['log_path'] = ''; // লগ ফাইলের পাথ (ডিফল্ট: application/logs)
$config['log_file_extension'] = 'log'; // লগ ফাইল এক্সটেনশন
$config['log_file_permissions'] = 0644; // ফাইলের পারমিশন
$config['log_date_format'] = 'Y-m-d H:i:s'; // লগ তারিখের ফরম্যাট
log_threshold সেটিং

log_threshold বিভিন্ন স্তরের লগিং নিয়ন্ত্রণ করে:

  • 0: কোন লগই রাখা হবে না।
  • 1: Error messages only.
  • 2: Debug messages and error messages.
  • 3: Informational messages, debug messages, and error messages.
  • 4: All messages (informational, debug, and error).

Error Logging Example

২. Error Logs ব্যবহার

CodeIgniter এর log_message() ফাংশনটি ব্যবহার করে বিভিন্ন ধরনের লগ তৈরি করা যায়। এটি error, debug, info এবং alert ধরনের লগ তৈরি করতে সক্ষম।

২.১ Error Log লিখা
log_message('error', 'This is an error message!');
  • এখানে, 'error' হলো লগের স্তর এবং 'This is an error message!' হলো লগ বার্তা।
২.২ Debug Log লিখা
log_message('debug', 'This is a debug message!');
২.৩ Informational Log লিখা
log_message('info', 'This is an informational message!');

৩. লগ ফাইলের অবস্থান

লগ ফাইলগুলি ডিফল্টভাবে application/logs ডিরেক্টরিতে সংরক্ষণ করা হয়। তবে, আপনি log_path কনফিগারেশন সেটিংয়ের মাধ্যমে লগ ফাইলের অবস্থান পরিবর্তন করতে পারেন।

$config['log_path'] = '/var/logs/codeigniter/';

৪. লগ ফাইলের নাম

লগ ফাইলের নাম সাধারণত log-YYYY-MM-DD.php ফরম্যাটে হয়, যেখানে YYYY-MM-DD লগের তারিখ। আপনি যদি কাস্টম নাম ব্যবহার করতে চান, তবে log_file_extension সেটিং ব্যবহার করতে পারেন।


CodeIgniter Error Logging এর সুবিধা

  1. ডিবাগিং সহজ করা: অ্যাপ্লিকেশনের ত্রুটি সহজে শনাক্ত করা যায়।
  2. ডেটা নিরাপত্তা: লগগুলি সরাসরি ব্রাউজারে দেখানো হয় না, এটি নিরাপত্তা নিশ্চিত করে।
  3. বিভিন্ন স্তরের লগ: আপনার প্রয়োজন অনুযায়ী Error, Debug, এবং Info লগ পৃথকভাবে রাখা যায়।
  4. ডেটা বিশ্লেষণ: লগ ফাইলগুলি সিস্টেমের কার্যকলাপ বিশ্লেষণে সহায়ক হতে পারে।

CodeIgniter Error Tracking Example

৫. Controller কোডে লগিং ব্যবহার

ধরা যাক, একটি UserController তৈরি করতে চান যা ব্যবহারকারীর তথ্য দেখাবে এবং যদি কোনো ত্রুটি ঘটে, তাহলে সেটি লগ করবে।

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class UserController extends CI_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->model('UserModel');
    }

    public function get_user_data($id) {
        try {
            // ডেটা সংগ্রহ
            $user = $this->UserModel->get_user_by_id($id);

            // ডেটা না থাকলে error log
            if (!$user) {
                log_message('error', 'User with ID ' . $id . ' not found.');
                show_404(); // 404 পেজ দেখান
            }

            // ডেটা শো
            $this->load->view('user_view', ['user' => $user]);
        } catch (Exception $e) {
            log_message('error', 'Error occurred: ' . $e->getMessage());
            show_error('An error occurred while fetching user data.');
        }
    }
}
  • এখানে, log_message('error', ...) ব্যবহার করা হয়েছে যখন ডেটা পাওয়া যায় না অথবা অন্য কোনো ত্রুটি ঘটে।
  • show_error() ব্যবহার করা হয়েছে ত্রুটি বার্তা ব্যবহারকারীকে দেখানোর জন্য।

৬. Model কোডে লগিং ব্যবহার

<?php
class UserModel extends CI_Model {

    public function get_user_by_id($id) {
        $query = $this->db->get_where('users', ['id' => $id]);

        if ($query->num_rows() == 0) {
            log_message('error', 'User with ID ' . $id . ' not found in database.');
            return false; // User not found
        }

        return $query->row_array();
    }
}
  • যদি ডাটাবেস থেকে ব্যবহারকারী না পাওয়া যায়, তবে ত্রুটি লগ করা হয়।

Error Tracking ব্যবহার করার সুবিধা

  1. সহজ ডিবাগিং: ডেভেলপাররা কোডের মধ্যে ত্রুটি দ্রুত খুঁজে পেতে পারে এবং কোডে কোনো সমস্যা থাকলে সহজেই সমাধান করতে পারে।
  2. রিয়েল-টাইম মনিটরিং: লগ ফাইলগুলির মাধ্যমে অ্যাপ্লিকেশনের রিয়েল-টাইম কার্যক্রম পর্যবেক্ষণ করা যায়।
  3. পারফরম্যান্স ট্র্যাকিং: কোডের কোন অংশে সমস্যা হচ্ছে বা কোন অংশে বেশি সময় নিচ্ছে তা লগ ফাইল থেকে বের করা সম্ভব।
  4. সিস্টেম ট্র্যাবিলিটি: সিস্টেমে কোনো বড় সমস্যা ঘটলে বা সিস্টেমে পরিবর্তন আসলে তা লগ ফাইলে নথিভুক্ত থাকে, যাতে পরবর্তী সময়ে সমস্যা সমাধান করা যায়।

CodeIgniter এ Logging এবং Error Tracking সিস্টেম ব্যবহার করে আপনি আপনার অ্যাপ্লিকেশনের ত্রুটিগুলো সঠিকভাবে ট্র্যাক করতে পারেন এবং দ্রুত সমাধান পেতে পারেন। এটি একটি গুরুত্বপূর্ণ টুল যা ডেভেলপমেন্ট এবং মেইন্টেনেন্সকে অনেক সহজ করে তোলে।

Content added By
Promotion